﻿Imports SIAVU.Dominio

Namespace Presentacion

    Partial Public Class ProgramarReglas
        Inherits System.Web.UI.Page

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not (Page.IsPostBack) Then
                If (cmbDestino.SelectedIndex = -1) Then
                    '//Completo el combo de ciudades
                    Dim oEntityManager As New EntityManager
                    cmbDestino.DataSource = oEntityManager.GetDestinosSinBuenosAires()
                    cmbDestino.DataBind()
                End If
                MostrarRegla()
            End If
        End Sub

#Region "Eventos"

        Protected Sub btnAceptar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAceptar.Click
            Page.Validate()
            If (Page.IsValid) Then
                Dim oCiudad As Ciudad = ObtenerCiudad()
                oCiudad.Reglas(0).HorasPreDespegue = txtHorasAntes.Text
                oCiudad.Reglas(0).HorasPostAterrizaje = txtHorasDespues.Text

                If (oCiudad.guardar() = True) Then
                    Session("MensajeInformacion") = "Se ha configurado la regla de manera exitosa"
                    Response.Redirect("MenuPrincipal.aspx")
                Else
                    'TODO Direccionar a página de error o mostrar mensaje
                End If
            End If
        End Sub

        Protected Sub cmbDestino_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmbDestino.SelectedIndexChanged
            MostrarRegla()
        End Sub

#End Region

#Region "Métodos"

        Private Sub MostrarRegla()
            '//Obtengo el registro de la base de datos, y si no existe no hago nada...
            Dim oCiudad As Ciudad = ObtenerCiudad()
            If (oCiudad IsNot Nothing AndAlso oCiudad.Reglas.Count > 0) Then
                txtHorasAntes.Text = oCiudad.Reglas(0).HorasPreDespegue
                txtHorasDespues.Text = oCiudad.Reglas(0).HorasPostAterrizaje
            Else
                txtHorasAntes.Text = "0"
                txtHorasDespues.Text = "0"
            End If
        End Sub

        Private Function ObtenerCiudad() As Ciudad
            If (cmbDestino.SelectedIndex > -1) Then
                Dim oCiudad As New Ciudad
                oCiudad = oCiudad.getByID(cmbDestino.SelectedItem.Value)

                If (oCiudad IsNot Nothing AndAlso oCiudad.Reglas.Count = 0) Then
                    '//Es porque todavía no tiene cargada reglas..
                    Dim oRegla As New Regla
                    oRegla.HorasPostAterrizaje = 0
                    oRegla.HorasPreDespegue = 0
                    oRegla.Nomenclatura = "VER"
                    oCiudad.Reglas.Add(oRegla)
                End If

                Return oCiudad
            Else
                Return Nothing
            End If

        End Function

#End Region

#Region "Validaciones"

        Protected Sub cvGuardarRegla_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles cvGuardarRegla.ServerValidate
            '//Valido que haya seleccionado al menos un destino
            If (cmbDestino.SelectedIndex = -1) Then
                args.IsValid = False
                cvGuardarRegla.ErrorMessage = "Debe seleccionar un destino al cuál aplicar la regla"
            End If
        End Sub

#End Region

    End Class

End Namespace
